home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs52.d81 / vis6b4.sda / DIRVIEW.PRG (.txt) next >
Commodore BASIC  |  2009-10-10  |  2KB  |  115 lines

  1. 1 REM RICK MOSDELL SAT25MAR95 9PM
  2. 2 REM VIEW/PRINT DIRECTORY FROM BASIC
  3. 3 REM PRINTER ASSUMED DEV#4 AND ON
  4. 4 :
  5. 10 A$="":B$="":C$="":I=0:HI=0:LO=0:L=0
  6. 20 ZE$=CHR$(0):QU$=CHR$(34):HD$=""
  7. 30 DN$="":DI$="":DF$=""
  8. 40 DV=PEEK(186):NF=0:MX=250:PN=0:BL=0
  9. 42 EN=0:EM$="":ET=0:ES=0:FL=3
  10. 44 TE=PEEK(646):BD=PEEK(53280):BK=PEEK(53281)
  11. 46 POKE646,3:POKE53280,0:POKE53281,0
  12. 50 DIM TY$(4),T(4)
  13. 60 DIM F$(MX),LE(MX),TY(MX)
  14. 70 PRINT"[147]";"";TAB(4);"[194][193][211][201][195] [196]IRECTORY [214]IEWER/[208]RINTER"
  15. 71 PRINTTAB(5);"[159](C) [153][205]ARCH 1995 [158][205]OZART[146][159]/[214]ISION"
  16. 72 PRINTTAB(7);"[159]RELEASED UNDER [154][208]OWER[211]OFT"
  17. 73 PRINT"[159][208]RINTER ASSUMED TO BE DEVICE 4 AND ON"
  18. 74 PRINT"[159][207]UTPUT TO ([158][211][159])CREEN OR ([158][208][159])RINTER ... ";
  19. 75 GOSUB1300:PRINT "[158]";A$;"[159]"
  20. 76 IF A$="P" THEN FL=FL+1
  21. 77 CLOSEFL:OPENFL,FL,7
  22. 79 :
  23. 100 FOR I=0 TO 4
  24. 110 T(I)=I:NEXT
  25. 119 :
  26. 120 TY$(0)="DEL"
  27. 121 TY$(1)="SEQ"
  28. 122 TY$(2)="PRG"
  29. 123 TY$(3)="USR"
  30. 124 TY$(4)="REL"
  31. 129 :
  32. 130 CLOSE15:OPEN15,DV,15:CLOSE15
  33. 132 IF ST<>0 THEN PRINT"DEVICE";DV;"NOT PRESENT":GOTO900
  34. 139 :
  35. 150 OPEN15,DV,15
  36. 180 PRINT:PRINT"[153]READING DIRECTORY DEVICE";DV;
  37. 190 CLOSE1:OPEN1,DV,0,"$0:*"
  38. 192 GOSUB1100:IF EN>19 AND EN<>73 THENCLOSE1:GOTO900
  39. 199 :
  40. 200 FOR I=0 TO 3:GET#1,A$:NEXT
  41. 201 GET#1,A$:IF A$="" THEN A$=ZE$
  42. 202 PN=ASC(A$):GET#1,A$
  43. 210 GET#1,A$:HD$=HD$+A$
  44. 230 IF A$<>"" THEN210
  45. 300 GET#1,A$:GET#1,A$
  46. 301 GET#1,A$:IF A$="" THEN A$=ZE$
  47. 302 LO=ASC(A$)
  48. 304 GET#1,A$:IF A$="" THEN A$=ZE$
  49. 306 HI=ASC(A$)
  50. 310 GET#1,A$:IFA$=" "ORA$=""THEN310
  51. 320 IFA$<>QU$THENCLOSE1:PRINT"[159]":GOTO400
  52. 330 B$=""
  53. 340 GET#1,A$:IFA$=QU$THEN360
  54. 350 B$=B$+A$:GOTO340
  55. 360 F$(NF)=B$
  56. 362 LE(NF)=(256*HI)+LO
  57. 370 GET#1,A$:IF A$=" " THEN370
  58. 380 IF A$="D" THEN TY(NF)=0:GOTO388
  59. 381 IF A$="S" THEN TY(NF)=1:GOTO388
  60. 382 IF A$="P" THEN TY(NF)=2:GOTO388
  61. 383 IF A$="U" THEN TY(NF)=3:GOTO388
  62. 384 IF A$="R" THEN TY(NF)=4
  63. 388 NF=NF+1
  64. 389 GET#1,A$:IF A$<>""THEN389
  65. 397 PRINT".";
  66. 398 GOTO300
  67. 399 :
  68. 400 BL=(256*HI)+LO
  69. 410 A$=MID$(HD$,3,16):GOSUB1200:DN$=A$
  70. 420 DI$=MID$(HD$,21,2)
  71. 430 DF$=MID$(HD$,24,2)
  72. 440 A$=STR$(PN):GOSUB1000:B$=A$
  73. 450 A$=STR$(BL):GOSUB1000
  74. 470 PRINT#FL:PRINT#FL,B$;" ";DN$;"[146] ";DI$;" ";DF$;" ";
  75. 480 PRINT#FL,A$;" FREE"
  76. 499 :
  77. 500 IF NF<1 THEN900
  78. 505 FOR I=0 TO NF-1
  79. 510 A$=STR$(LE(I)):GOSUB1000
  80. 520 L=LE(I)
  81. 530 IF L<1000 THEN PRINT#FL," ";
  82. 540 IF L<100  THEN PRINT#FL," ";
  83. 550 IF L<10   THEN PRINT#FL," ";
  84. 560 PRINT#FL,A$;" ";:B$=F$(I)
  85. 570 PRINT#FL,B$;SPC(17-LEN(B$));
  86. 580 PRINT#FL,TY$(TY(I))
  87. 590 NEXT
  88. 599 :
  89. 900 PRINT#FL,"":CLOSEFL
  90. 901 CLOSE15
  91. 902 POKE646,TE:POKE53280,BD:POKE53281,BK
  92. 903 CLR:END
  93. 999 :
  94. 1000 REM CHOP LEADING NUMERICAL BLANKS
  95. 1010 A$=RIGHT$(A$,LEN(A$)-1)
  96. 1020 RETURN
  97. 1099 :
  98. 1100 REM DRIVE ERROR CHECK
  99. 1110 INPUT#15,EN,EM$,ET,ES
  100. 1120 IF EN<20 OR EN=73 THEN RETURN
  101. 1130 PRINT EN;EM$;ET;ES
  102. 1140 RETURN
  103. 1199 :
  104. 1200 REM CHOP TRAILING BLANKS
  105. 1210 IF " "<>RIGHT$(A$,1) THEN RETURN
  106. 1220 L=LEN(A$)
  107. 1230 IF L=1 THEN A$=ZE$:RETURN
  108. 1240 A$=LEFT$(A$,L-1)
  109. 1250 GOTO1200
  110. 1299 :
  111. 1300 REM PAUSE
  112. 1310 GET A$:IF A$="" THEN1310
  113. 1320 RETURN
  114. 1399 :
  115.